#ifndef Printer_First
#define Printer_First
#ifdef __GNUG__
#pragma interface
#endif

#include "Dialog.h"

class PrintPort;
class PrinterSettings;

//---- Printer -----------------------------------------------------------------

class Printer : public Object {
public:
	MetaDef(Printer);
	Printer();
	~Printer();

	VObject *GetOptions();

	virtual PrinterSettings *GetSettings();
	virtual PrintPort *MakePrintPort(const char *name);
	virtual const char *GetName();
	virtual bool CanPrint();
	virtual bool CanSave();
	virtual bool OpenPage(int pageno, Rectangle pgr);
	virtual bool ClosePage();
	virtual void Finish();
	virtual void Start(int pagecnt);
	virtual void LoadSettings(PrinterSettings*);
	virtual void StoreSettings(PrinterSettings*);

	const char *AsString();

protected:
	virtual VObject *DoCreatePrintDialog();
	virtual PrinterSettings *MakeSettings();

protected:
	VObject *pdia;
	PrinterSettings *settings;
};

#endif


